package shujia.day16;

/*
    ThreadGroup: java提供用于描述线程组的类

    1、每个线程默认有一个线程组 getThreadGroup(), 默认线程组的名字叫做main
    2、为了方便对批量的线程做设置
 */
class MyThread1 extends Thread {
    public MyThread1() {
    }

    public MyThread1(ThreadGroup group, String name) {
        super(group, name);
    }

    @Override
    public void run() {
        for (int i = 1; i <= 200; i++) {
            System.out.println(getName() + " - " + i);
        }
    }
}

public class ThreadGroupDemo1 {
    public static void main(String[] args) {
        //创建3个线程对象
//        MyThread1 t1 = new MyThread1();
//        MyThread1 t2 = new MyThread1();
//        MyThread1 t3 = new MyThread1();
//
//
//        System.out.println(t1.getThreadGroup().getName());
//        System.out.println(t2.getThreadGroup().getName());
//        System.out.println(t3.getThreadGroup().getName());

        //需求：创建一个名字叫帅哥组的线程组，再创建几个线程对象放到线程组中
        //ThreadGroup(String name) 构造一个新的线程组。
        ThreadGroup tg1 = new ThreadGroup("帅哥组");
        ThreadGroup tg2 = new ThreadGroup("修仙组");

        //Thread(ThreadGroup group, String name) 分配一个新的 Thread对象。
        //创建线程对象的时候，给线程设置一个线程组
        MyThread1 t1 = new MyThread1(tg1,"张成阳");
        System.out.println("t1当前的线程名字叫做："+t1.getName()+", 属于线程组："+t1.getThreadGroup().getName());
        MyThread1 t2 = new MyThread1(tg1,"方直");
        System.out.println("t2当前的线程名字叫做："+t2.getName()+", 属于线程组："+t2.getThreadGroup().getName());
        MyThread1 t3 = new MyThread1(tg1,"杨浩东");
        System.out.println("t3当前的线程名字叫做："+t3.getName()+", 属于线程组："+t3.getThreadGroup().getName());

        //Thread(ThreadGroup group, String name) 分配一个新的 Thread对象。
        //创建线程对象的时候，给线程设置一个线程组
        MyThread1 t4 = new MyThread1(tg2,"黄涛");
        System.out.println("t4当前的线程名字叫做："+t4.getName()+", 属于线程组："+t4.getThreadGroup().getName());
        MyThread1 t5 = new MyThread1(tg2,"康清宇");
        System.out.println("t5当前的线程名字叫做："+t5.getName()+", 属于线程组："+t5.getThreadGroup().getName());
        MyThread1 t6 = new MyThread1(tg2,"王耀");
        System.out.println("t6当前的线程名字叫做："+t6.getName()+", 属于线程组："+t6.getThreadGroup().getName());


        // 将修仙组的线程设置为守护线程
//        t4.setDaemon(true);
//        t5.setDaemon(true);
//        t6.setDaemon(true);
        tg2.setDaemon(true);


    }
}
